//package util;
//
//import net.coobird.thumbnailator.Thumbnails;
//import org.apache.pdfbox.cos.COSName;
//import org.apache.pdfbox.pdmodel.PDDocument;
//import org.apache.pdfbox.pdmodel.PDPage;
//import org.apache.pdfbox.pdmodel.PDResources;
//import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
//import org.apache.pdfbox.text.PDFTextStripper;
//import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
//import org.apache.poi.xwpf.usermodel.XWPFParagraph;
//import org.apache.poi.xwpf.usermodel.XWPFRun;
//
//import javax.imageio.ImageIO;
//import java.awt.image.BufferedImage;
//import java.io.*;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.Iterator;
//import java.util.Scanner;
//
//
//public class PdfToWord {
//    public void convertText(String pdfPath) {
//        PDDocument doc = null;
//        OutputStream fos = null;
//        Writer writer = null;
//        PDFTextStripper stripper = null;
//        try {
//            doc = PDDocument.load(new File(pdfPath));
//            fos = new FileOutputStream(pdfPath.substring(0, pdfPath.indexOf(".")) + ".doc");
//            writer = new OutputStreamWriter(fos, "UTF-8");
//            stripper = new PDFTextStripper();
//            int pageNumber = doc.getNumberOfPages();
//            stripper.setSortByPosition(true);
//            stripper.setStartPage(1);
//            stripper.setEndPage(pageNumber);
//            stripper.writeText(doc, writer);
//            writer.close();
//            doc.close();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        System.out.println("end..");
//    }
//
//    public static String pdfToword2(String pdfFileName){
//        String docFileName = "";
//        try {
//            PDDocument pdf = PDDocument.load(new File(pdfFileName));
//            int pageNumber = pdf.getNumberOfPages();
//
//            String millis = (System.currentTimeMillis()/ 1000)+"";
//            docFileName = pdfFileName.substring(0, pdfFileName.lastIndexOf("."))  + millis + ".doc";
//
//            File file = new File(docFileName);
//            if (!file.exists()) {
//                file.createNewFile();
//            }
//
//            String pdfImgPath = pdfFileName.substring(0, pdfFileName.lastIndexOf("."))+ millis + "img\\";
//            File pdfImgFile = new File(pdfImgPath);
//            if (!pdfImgFile.isDirectory()){
//                pdfImgFile.mkdir();
//            }
//            CustomXWPFDocument document = new CustomXWPFDocument();
//            FileOutputStream fos = new FileOutputStream(docFileName);
//
//            //提取每一页的图片和文字，添加到 word 中
//            for (int i = 0; i < pageNumber; i++) {
//
//                PDPage page = pdf.getPage(i);
//                PDResources resources = page.getResources();
//
//                Iterable<COSName> names = resources.getXObjectNames();
//                Iterator<COSName> iterator = names.iterator();
//                while (iterator.hasNext()) {
//                    COSName cosName = iterator.next();
//
//                    if (resources.isImageXObject(cosName)) {
//                        PDImageXObject imageXObject = (PDImageXObject) resources.getXObject(cosName);
//                        File outImgFile = new File(pdfImgPath + System.currentTimeMillis() + ".jpg");
//                        Thumbnails.of(imageXObject.getImage()).scale(0.9).rotate(0).toFile(outImgFile);
//
//
//                        BufferedImage bufferedImage = ImageIO.read(outImgFile);
//                        int width = bufferedImage.getWidth();
//                        int height = bufferedImage.getHeight();
//                        if (width > 600) {
//                            double ratio = Math.round((double) width / 550.0);
////                            System.out.println("缩放比ratio："+ratio);
//                            width = (int) (width / ratio);
//                            height = (int) (height / ratio);
//
//                        }
//
////                        System.out.println("width: " + width + ",  height: " + height);
//                        FileInputStream in = new FileInputStream(outImgFile);
//                        byte[] ba = new byte[in.available()];
//                        in.read(ba);
//                        ByteArrayInputStream byteInputStream = new ByteArrayInputStream(ba);
//
//                        XWPFParagraph picture = document.createParagraph();
//                        //添加图片
//                        document.addPictureData(byteInputStream, CustomXWPFDocument.PICTURE_TYPE_JPEG);
//                        //图片大小、位置
//                        document.createPicture(document.getAllPictures().size() - 1, width, height, picture);
//
//                    }
//                }
//
//
//                PDFTextStripper stripper = new PDFTextStripper();
//                stripper.setSortByPosition(true);
//                stripper.setStartPage(i);
//                stripper.setEndPage(i);
//                //当前页中的文字
//                String text = stripper.getText(pdf);
//
//
//                XWPFParagraph textParagraph = document.createParagraph();
//                XWPFRun textRun = textParagraph.createRun();
//                textRun.setText(text);
//                textRun.setFontFamily("仿宋");
//                textRun.setFontSize(11);
//                //换行
//                textParagraph.setWordWrap(true);
//            }
//            document.write(fos);
//            fos.close();
//            pdf.close();
//            File[] files = pdfImgFile.listFiles();
//            for (int i = 0;i < files.length;i ++) {
//                files[i].delete();
//            }
//            pdfImgFile.delete();
//            System.out.println("pdf转换解析结束！！----");
//        } catch (IOException e) {
//            e.printStackTrace();
//        } catch (InvalidFormatException e) {
//            e.printStackTrace();
//        }
//        return docFileName;
//    }
//
//    public static void main(String[] args) {
////        PdfToWord convert=new PdfToWord();
////        convert.convertText("E:\\test\\test.pdf");
//
////        String pdfFileName = "E:\\test\\商务分册—中国移动浙江公司2021年核心项目（纯图）.pdf";
////        PdfToWord.pdfToword2(pdfFileName);
//
////        PdfDocument pdf = new PdfDocument();
////        pdf.loadFromFile("E:\\test\\商务分册—中国移动浙江公司2021年核心项目（普通）.pdf");
//
//// 保存为Word格式
////        pdf.saveToFile("E:\\test\\商务分册—中国移动浙江公司2021年核心项目（普通）.doc", FileFormat.DOCX);
//
//
////        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
////        //获取当前月第一天：
////        Calendar c = Calendar.getInstance();
////        c.add(Calendar.MONTH, 0);
////        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
////        String first = format.format(c.getTime());
////        System.out.println("===============first:"+first);
////
////        //获取当前月最后一天
////        Calendar ca = Calendar.getInstance();
////        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
////        String last = format.format(ca.getTime());
////        System.out.println("===============last:"+last);
//
//
//        String endMonth = "2020-11";
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
//        Date dt = null;
//        try {
//            dt = sdf.parse(endMonth);
//        } catch (ParseException e) {
//            e.printStackTrace();
//        }
//        Calendar rightNow = Calendar.getInstance();
//        rightNow.setTime(dt);
//        rightNow.add(Calendar.MONTH, 1);
//        Date dt1 = rightNow.getTime();
//        endMonth = sdf.format(dt1);
//        System.out.println(endMonth);
//    }
//}
//
//
////    1.某企业规定根据利润进行提成，发放奖金。
////    利润低于或等于10万元时，奖金可提10%；
////    利润在10万元到20万元（含）之间时，
////    低于10万元的部分按10%提成，高于10万元的部分，可提成7.5%；
////    20万到40万（含）之间时，高于20万元的部分，可提成5%；
////    40万到60万（含）之间时，高于40万元的部分，可提成3%；
////    60万到100万（含）之间时，高于60万元的部分，可提成1%，
////    高于100万元时，超过100万元的部分按0.8%提成。
////    从键盘输入当月利润，求应发放奖金总数。
////    请说明你的解题思路（10分），
////    并用Java语言编程解决该问题(30分)。
////键盘输入对象
////        Scanner sc = new Scanner(System.in);
////        //键盘输入利润
////        double profit = sc.nextDouble();
////
////        double bonus = 0;
////        double level1 = 100000 * 0.1;
////        double level2 = (200000 - 100000) * 0.075;
////        double level3 = (400000 - 200000) * 0.05;
////        double level4 = (600000 - 400000) * 0.03;
////        double level5 = (1000000 - 600000) * 0.01;
////
////        if (profit <= 100000){
////            bonus = profit * 0.1;
////        }else if (profit > 100000 && profit <=200000){
////            bonus = ((profit - 100000) * 0.075) + level1;
////        }else if (profit > 200000 && profit <= 400000){
////            bonus = ((profit - 200000) * 0.05) + level2 + level1;
////        }else if( profit > 400000 && profit <= 600000){
////            bonus = ((profit - 400000) * 0.03) + level3 + level2 + level1;
////        }else if (profit > 600000 && profit <= 1000000){
////            bonus = ((profit - 600000) * 0.01) + level4 + level3 + level2 + level1;
////        }else if (profit > 1000000){
////            bonus = ((profit - 1000000) * 0.008) + level5 + level4 + level3 + level2 + level1;
////        }
////
////
////        System.out.println(bonus);
